 <b>Subscribe to my youTube channel for more content... or don't for less...</b>

<u> V_Functions </u>

A collection of functions for GTAV Mods
==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
<ul>
        <b>Features</b> 

		-- Add / Remove Snow from terrain for all game versions.
		-- Add Custom Phone Contacts.
		-- Load in online maps with out breaking the .net system.
</ul>
==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
<b>installation</b>
==-==-==-==-==-==-==-==
Place V_Functions.asi into your 'Grand Theft Auto V' folder.
==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
<b>How to Use.</b>
==-==-==-==-==-==-==-==
SNOW
_+_+_+_+_
C++;
	-- to find if snow is activated(via V_Functions.asi).

#include <Windows.h>

const std::string VFunk = GetDir() + "/V_Functions.asi";
typedef bool(*SnowFallType)();

bool AccessSnowFallType()
{
	bool b = false;
	if (FileExists(VFunk))
	{
		// Load the first .asi file (DLL)
		HMODULE hMod = LoadLibrary("V_Functions.asi");
		if (hMod != nullptr)
		{
			// Get the function pointer
			SnowFallType MyExportedFunction = (SnowFallType)GetProcAddress(hMod, "SnowFall");

			if (MyExportedFunction != nullptr)
				b = MyExportedFunction();

			FreeLibrary(hMod);
		}
	}
	else
		MissingFunk = true;

	return b;
}

	-- to activate snow.

typedef void(*LetItSnowType)(bool On);

void AccessLetItSnowType(bool On)
{
	if (FileExists(VFunk))
	{
		// Load the first .asi file (DLL)
		HMODULE hMod = LoadLibrary("V_Functions.asi");
		if (hMod != nullptr)
		{
			// Get the function pointer
			LetItSnowType MyExportedFunction = (LetItSnowType)GetProcAddress(hMod, "LetItSnow");

			if (MyExportedFunction != nullptr)
				MyExportedFunction(On);

			FreeLibrary(hMod);
		}
	}
	else
		MissingFunk = true;
}
	- If your c++ is set to use wide string chars then use the 'L""' like this 'HMODULE hMod = LoadLibrary(L"V_Functions.asi");'
for c# all functions are activated via text files;

Too add snow create a blank txt file and name it;
        string sRaceSnowOn = "" + Directory.GetCurrentDirectory() + "/AddSnow.sn";


Too remove snow create a blank txt file and name it;
        public static readonly string sRaceSnowOff = "" + Directory.GetCurrentDirectory() + "/RemoveSnow.sn";

Online Maps
_+_+_+_+_

Too add online maps create a blank txt file and name it;
        public static readonly string sAdd_Mp_IPL = "" + Directory.GetCurrentDirectory() + "/AddMP_IPL.txt";


Too remove online maps create a blank txt file and name it;
        public static readonly string sRemove_Mp_IPL = "" + Directory.GetCurrentDirectory() + "/RemoveMP_IPL.txt";


Mobile Contacts
_+_+_+_+_
	-Like with the c# version the contacts are handled through text form;

To add a contact create a Mobile Contact create an ini file try to name it with your modName followed by its own Id. ie 'MyModAdCon001.ini'
Fill the ini with;
[Phone]										//Always use this to identify the start of the file
ContactName=YourContactName 							//The name that will apear in contat list
ContactAddress=D:\ProgramFiles\Grand Theft Auto V/Scripts/NSPM/Return01.ini	//The trigger file add you own mod location. the file is created when contact is activated.
Icon=CHAR_CALL911								//The icon displayed for your contact (see icon list)
[Phone/End]									//Always use this to identify the end of the file

Add your contact file to ../Grand Theft Auto V/MobileNetwork
==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
<b>Required Files</b>
==-==-==-==-==-==-==-==
	<a href="http://www.dev-c.com/gtav/scripthookv/">Script Hook V</a>

==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
<b>Change Log</b>
==-==-==-==-==-==-==-==
<u>Version 1</u>
<ul>
    <li>New release made to fix faults in scripthookdotnetV2.</li>

</ul>

==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
<b>Icon List</b>
==-==-==-==-==-==-==-==
		"CHAR_DEFAULT",// Generic
		"CHAR_ABIGAIL",// Abigail
		"CHAR_ALL_PLAYERS_CONF",// AllCharacters
		"CHAR_AMANDA",// Amanda
		"CHAR_AMMUNATION",// Ammunation
		"CHAR_ANDREAS",// Andreas
		"CHAR_ANTONIA",// Antonia
		"CHAR_ARTHUR",// Arthur
		"CHAR_ASHLEY",// Ashley
		"CHAR_BANK_BOL",// BankOfLiberty
		"CHAR_BANK_FLEECA",// FleecaBank
		"CHAR_BANK_MAZE",// MazeBank
		"CHAR_BARRY",// Barry
		"CHAR_BEVERLY",// Beverly
		"CHAR_BIKESITE",// Bikesite
		"CHAR_BLANK_ENTRY",// Blank
		"CHAR_BLIMP",// Blimp
		"CHAR_BLOCKED",// Blocked
		"CHAR_BOATSITE",// Boatsite
		"CHAR_BROKEN_DOWN_GIRL",// BrokenDownGirl
		"CHAR_BUGSTARS",// Bugstars
		"CHAR_CALL911",// Emergency
		"CHAR_CARSITE",// LegendaryMotorsport
		"CHAR_CARSITE2",// SSASuperAutos
		"CHAR_CASTRO",// Castro
		"CHAR_CHAT_CALL",// ChatIcon
		"CHAR_CHEF",// Chef
		"CHAR_CHENG",// Cheng
		"CHAR_CHENGSR",// ChengSr
		"CHAR_CHOP",// Chop
		"CHAR_CREATOR_PORTRAITS",// CreatorPortraits
		"CHAR_CRIS",// Cris
		"CHAR_DAVE",// Dave
		"CHAR_DENISE",// Denise
		"CHAR_DETONATEBOMB",// DetonateBomb
		"CHAR_DETONATEPHONE",// DetonatePhone
		"CHAR_DEVIN",// Devin
		"CHAR_DIAL_A_SUB",// DialASub
		"CHAR_DOM",// Dom
		"CHAR_DOMESTIC_GIRL",// DomesticGirl
		"CHAR_DREYFUSS",// Dreyfuss
		"CHAR_DR_FRIEDLANDER",// DrFriedlander
		"CHAR_EPSILON",// Epsilon
		"CHAR_ESTATE_AGENT",// EstateAgent
		"CHAR_FACEBOOK",// Facebook
		"CHAR_FILMNOIR",// Filmnoir
		"CHAR_FLOYD",// Floyd
		"CHAR_FRANKLIN",// Franklin
		"CHAR_FRANK_TREV_CONF",// FranklinTrevor
		"CHAR_GAYMILITARY",// GayMilitary
		"CHAR_HAO",// Hao
		"CHAR_HITCHER_GIRL",// HitcherGirl
		"CHAR_HUMANDEFAULT",// Human
		"CHAR_HUNTER",// Hunter
		"CHAR_JIMMY",// Jimmy
		"CHAR_JIMMY_BOSTON",// JimmyBoston
		"CHAR_JOE",// Joe
		"CHAR_JOSEF",// Josef
		"CHAR_JOSH",// Josh
		"CHAR_LAMAR",// Lamar
		"CHAR_LAZLOW",// Lazlow
		"CHAR_LESTER",// Lester
		"CHAR_LESTER_DEATHWISH",// Skull
		"CHAR_LEST_FRANK_CONF",// LesterFranklin
		"CHAR_LEST_MIKE_CONF",// LesterMichael
		"CHAR_LIFEINVADER",// Lifeinvader
		"CHAR_LS_CUSTOMS",// LSCustoms
		"CHAR_LS_TOURIST_BOARD",// LSTouristBoard
		"CHAR_MANUEL",// Manuel
		"CHAR_MARNIE",// Marnie
		"CHAR_MARTIN",// Martin
		"CHAR_MARY_ANN",// MaryAnn
		"CHAR_MAUDE",// Maude
		"CHAR_MECHANIC",// Mechanic
		"CHAR_MICHAEL",// Michael
		"CHAR_MIKE_FRANK_CONF",// MichaelFranklin
		"CHAR_MIKE_TREV_CONF",// MichaelTrevor
		"CHAR_MILSITE",// Milsite
		"CHAR_MINOTAUR",// Minotaur
		"CHAR_MOLLY",// Molly
		"CHAR_MP_ARMY_CONTACT",// MP_ArmyContact
		"CHAR_MP_BIKER_BOSS",// MP_BikerBoss
		"CHAR_MP_BIKER_MECHANIC",// MP_BikerMechanic
		"CHAR_MP_BRUCIE",// MP_Brucie
		"CHAR_MP_DETONATEPHONE",// MP_Detonatephone
		"CHAR_MP_FAM_BOSS",// MP_FamBoss
		"CHAR_MP_FIB_CONTACT",// MP_FibContact
		"CHAR_MP_FM_CONTACT",// MP_FmContact
		"CHAR_MP_GERALD",// MP_Gerald
		"CHAR_MP_JULIO",// MP_Julio
		"CHAR_MP_MECHANIC",// MP_Mechanic
		"CHAR_MP_MERRYWEATHER",// MP_Merryweather
		"CHAR_MP_MEX_BOSS",// MP_MexBoss
		"CHAR_MP_MEX_DOCKS",// MP_MexDocks
		"CHAR_MP_MEX_LT",// MP_MexLt
		"CHAR_MP_MORS_MUTUAL",// MP_MorsMutual
		"CHAR_MP_PROF_BOSS",// MP_ProfBoss
		"CHAR_MP_RAY_LAVOY",// MP_RayLavoy
		"CHAR_MP_ROBERTO",// MP_Roberto
		"CHAR_MP_SNITCH",// MP_Snitch
		"CHAR_MP_STRETCH",// MP_Stretch
		"CHAR_MP_STRIPCLUB_PR",// MP_StripclubPr
		"CHAR_MRS_THORNHILL",// MrsThornhill
		"CHAR_MULTIPLAYER",// Multiplayer
		"CHAR_NIGEL",// Nigel
		"CHAR_OMEGA",// Omega
		"CHAR_ONEIL",// Oneil
		"CHAR_ORTEGA",// Ortega
		"CHAR_OSCAR",// Oscar
		"CHAR_PATRICIA",// Patricia
		"CHAR_PEGASUS_DELIVERY",// Pegasus
		"CHAR_PLANESITE",// Planesite
		"CHAR_PROPERTY_ARMS_TRAFFICKING",// Property_ArmsTrafficking
		"CHAR_PROPERTY_BAR_AIRPORT",// Property_BarAirport
		"CHAR_PROPERTY_BAR_BAYVIEW",// Property_BarBayview
		"CHAR_PROPERTY_BAR_CAFE_ROJO",// Property_BarCafeRojo
		"CHAR_PROPERTY_BAR_COCKOTOOS",// Property_BarCockotoos
		"CHAR_PROPERTY_BAR_ECLIPSE",// Property_BarEclipse
		"CHAR_PROPERTY_BAR_FES",// Property_BarFes
		"CHAR_PROPERTY_BAR_HEN_HOUSE",// Property_BarHenHouse
		"CHAR_PROPERTY_BAR_HI_MEN",//Property_BarHiMen
		"CHAR_PROPERTY_BAR_HOOKIES",//Property_BarHookies
		"CHAR_PROPERTY_BAR_IRISH",// Property_BarIrish
		"CHAR_PROPERTY_BAR_LES_BIANCO",// Property_BarLesBianco
		"CHAR_PROPERTY_BAR_MIRROR_PARK",// Property_BarMirrorPark
		"CHAR_PROPERTY_BAR_PITCHERS",// Property_BarPitchers
		"CHAR_PROPERTY_BAR_SINGLETONS",// Property_BarSingletons
		"CHAR_PROPERTY_BAR_TEQUILALA",// Property_BarTequilala
		"CHAR_PROPERTY_BAR_UNBRANDED",// Property_BarUnbranded
		"CHAR_PROPERTY_CAR_MOD_SHOP",// Property_CarModShop
		"CHAR_PROPERTY_CAR_SCRAP_YARD",// Property_CarScrapYard
		"CHAR_PROPERTY_CINEMA_DOWNTOWN",// Property_CinemaDowntown
		"CHAR_PROPERTY_CINEMA_MORNINGWOOD",// Property_CinemaMorningwood
		"CHAR_PROPERTY_CINEMA_VINEWOOD",// Property_CinemaVinewood
		"CHAR_PROPERTY_GOLF_CLUB",// Property_GolfClub
		"CHAR_PROPERTY_PLANE_SCRAP_YARD",// Property_PlaneScrapYard
		"CHAR_PROPERTY_SONAR_COLLECTIONS",// Property_SonarCol
		"CHAR_PROPERTY_TAXI_LOT",// Property_TaxiLot lections
		"CHAR_PROPERTY_TOWING_IMPOUND",// Property_TowingImpound
		"CHAR_PROPERTY_WEED_SHOP",// Property_WeedShop
		"CHAR_RON",// Ron
		"CHAR_SAEEDA",// Saeeda
		"CHAR_SASQUATCH",// Sasquatch
		"CHAR_SIMEON",// Simeon
		"CHAR_SOCIAL_CLUB",// SocialClub
		"CHAR_SOLOMON",// Solomon
		"CHAR_STEVE",// Steve
		"CHAR_STEVE_MIKE_CONF",// SteveMichael
		"CHAR_STEVE_TREV_CONF",// SteveTrevor
		"CHAR_STRETCH",// Stretch
		"CHAR_STRIPPER_CHASTITY",// StripperChastity
		"CHAR_STRIPPER_CHEETAH",// StripperCheetah
		"CHAR_STRIPPER_FUFU",// StripperFufu
		"CHAR_STRIPPER_INFERNUS",// StripperInfernus
		"CHAR_STRIPPER_JULIET",// StripperJuliet
		"CHAR_STRIPPER_NIKKI",// StripperNikki
		"CHAR_STRIPPER_PEACH",// StripperPeach
		"CHAR_STRIPPER_SAPPHIRE",// StripperSapphire
		"CHAR_TANISHA",// Tanisha
		"CHAR_TAXI",// Taxi
		"CHAR_TAXI_LIZ",// TaxiLiz
		"CHAR_TENNIS_COACH",// TennisCoach
		"CHAR_TOW_TONYA",// Tonya
		"CHAR_TRACEY",// Tracey
		"CHAR_TREVOR",// Trevor
		"CHAR_WADE",// Wade
		"CHAR_YOUTUBE"// Youtube